<?php

namespace Sifast\ProjectBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Competences
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Sifast\ProjectBundle\Entity\CompetencesRepository")
 */
class Competences
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="nature_competence", type="string", length=255)
     */
    private $natureCompetence;

    /**
     * @var string
     *
     * @ORM\Column(name="niveau_competence", type="string", length=255)
     */
    private $niveauCompetence;

    /**
     * @var integer
     *
     * @ORM\Column(name="annee_experience", type="integer")
     */
    private $anneeExperience;

    /**
     * @var string
     *
     * @ORM\Column(name="date_derniere_evaluation", type="string", length=255)
     */
    private $dateDerniereEvaluation;

    /**
     * @var string
     *
     * @ORM\Column(name="date_derniere_validation", type="string", length=255)
     */
    private $dateDerniereValidation;

    /**
     * @var string
     *
     * @ORM\Column(name="date_prochaine_evaluation", type="string", length=255)
     */
    private $dateProchaineEvaluation;

    /**
     * @var string
     *
     * @ORM\Column(name="date_prochaine_validation", type="string", length=255)
     */
    private $dateProchaineValidation;
    /**
    * @var User
    * @ORM\ManyToMany(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="competences")
    */
    private $users;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set natureCompetence
     *
     * @param string $natureCompetence
     * @return Competences
     */
    public function setNatureCompetence($natureCompetence)
    {
        $this->natureCompetence = $natureCompetence;
    
        return $this;
    }

    /**
     * Get natureCompetence
     *
     * @return string 
     */
    public function getNatureCompetence()
    {
        return $this->natureCompetence;
    }

    /**
     * Set niveauCompetence
     *
     * @param string $niveauCompetence
     * @return Competences
     */
    public function setNiveauCompetence($niveauCompetence)
    {
        $this->niveauCompetence = $niveauCompetence;
    
        return $this;
    }

    /**
     * Get niveauCompetence
     *
     * @return string 
     */
    public function getNiveauCompetence()
    {
        return $this->niveauCompetence;
    }

    /**
     * Set anneeExperience
     *
     * @param integer $anneeExperience
     * @return Competences
     */
    public function setAnneeExperience($anneeExperience)
    {
        $this->anneeExperience = $anneeExperience;
    
        return $this;
    }

    /**
     * Get anneeExperience
     *
     * @return integer 
     */
    public function getAnneeExperience()
    {
        return $this->anneeExperience;
    }

    /**
     * Set dateDerniereEvaluation
     *
     * @param string $dateDerniereEvaluation
     * @return Competences
     */
    public function setDateDerniereEvaluation($dateDerniereEvaluation)
    {
        $this->dateDerniereEvaluation = $dateDerniereEvaluation;
    
        return $this;
    }

    /**
     * Get dateDerniereEvaluation
     *
     * @return string 
     */
    public function getDateDerniereEvaluation()
    {
        return $this->dateDerniereEvaluation;
    }

    /**
     * Set dateDerniereValidation
     *
     * @param string $dateDerniereValidation
     * @return Competences
     */
    public function setDateDerniereValidation($dateDerniereValidation)
    {
        $this->dateDerniereValidation = $dateDerniereValidation;
    
        return $this;
    }

    /**
     * Get dateDerniereValidation
     *
     * @return string 
     */
    public function getDateDerniereValidation()
    {
        return $this->dateDerniereValidation;
    }

    /**
     * Set dateProchaineEvaluation
     *
     * @param string $dateProchaineEvaluation
     * @return Competences
     */
    public function setDateProchaineEvaluation($dateProchaineEvaluation)
    {
        $this->dateProchaineEvaluation = $dateProchaineEvaluation;
    
        return $this;
    }

    /**
     * Get dateProchaineEvaluation
     *
     * @return string 
     */
    public function getDateProchaineEvaluation()
    {
        return $this->dateProchaineEvaluation;
    }

    /**
     * Set dateProchaineValidation
     *
     * @param string $dateProchaineValidation
     * @return Competences
     */
    public function setDateProchaineValidation($dateProchaineValidation)
    {
        $this->dateProchaineValidation = $dateProchaineValidation;
    
        return $this;
    }

    /**
     * Get dateProchaineValidation
     *
     * @return string 
     */
    public function getDateProchaineValidation()
    {
        return $this->dateProchaineValidation;
    }
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->users = new \Doctrine\Common\Collections\ArrayCollection();
    }
    
    /**
     * Add users
     *
     * @param \Application\Sonata\UserBundle\Entity\User $users
     * @return Competences
     */
    public function addUser(\Application\Sonata\UserBundle\Entity\User $users)
    {
        $this->users[] = $users;
    
        return $this;
    }

    /**
     * Remove users
     *
     * @param \Application\Sonata\UserBundle\Entity\User $users
     */
    public function removeUser(\Application\Sonata\UserBundle\Entity\User $users)
    {
        $this->users->removeElement($users);
    }

    /**
     * Get users
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getUsers()
    {
        return $this->users;
    }
}